Std AddonMgr/de

Std AddonManager

Menüeintrag
Werkzeuge → Addon-Manager
Arbeitsbereich
Alle
Standardtastenkürzel
Keiner
Eingeführt in Version
0.17
Siehe auch
Externe Arbeitsbereiche, Makros

Beschreibung

Der Befehl Std Addon-Manager öffnet den Addon-Manager. Mit dem Addon-Manager können externe Arbeitsbereiche, Makros, und Voreinstellungspakete, die durch die FreeCAD-Gemeinschaft bereitgestellt werden, installiert und verwaltet werden. Standardmäßig stammen die verfügbaren Erweiterungen aus zwei Quellen, (GitHub) FreeCAD-Addons und von der Seite Makrorezepte. Wenn GitPython und git auf dem eigenen System installiert sind, werden zusätzliche Makros von (GitHub) FreeCAD-Makros geladen. Benutzerdefinierte Quellen können in den Voreinstellungen des Addon-Managers hinzugefügt werden.

Aufgrund von Änderungen an der GitHub-Plattform im Jahr 2020 funktioniert der Addon-Manager nicht mehr, wenn man die FreeCAD-Version 0.17 oder älter verwendet. Man muss auf die Version 0.18.5 oder neuer aktualisieren. Alternativ könen die Erweiterungen auch manuell installiert werden, siehe Hinweise unten.

Anwendung

  1. Den Menüeintrag Werkzeuge → Addon-Manager auswählen.
  2. Wird der Addon-Manager zum ersten Mal verwendet, wird ein Dialogfeld geöffnet, das darauf hinweist, dass die Erweiterungen im Addon-Manager kein offizieller Bestandteil von FreeCAD sind. Es enthält auch mehrere Optionen, die mit der Verwendung von Daten durch den Addon-Manager zusammenhängen. Hat man diese Optionen den eigenen Vorlieben entsprechend eingestellt, drückt man die Schaltfläche OK, um zu bestätigen und fortzufahren.
  3. Das Dialogfeld Addon-Manager öffnet sich. Für weitere Informationen siehe Optionen.
  4. Die Schaltfläche Alles aktualisieren funktioniert zurzeit nicht.
  5. Die Schaltfläche Schließen drücken, um das Dialogfeld zu schließen.
  6. Wenn ein Arbeitsbereich installiert oder aktualisiert wurde, wird ein neues Dialogfeld geöffnet, das darauf hinweist, dass FreeCAD neu gestartet werden muss, damit die Änderungen wirksam werden.

Optionen

  1. Der Addon-Manager stellt zwei Layouts zur Verfügung: "Schmal" and "Erweitert". In der "schmalen" Ansicht füllt eine Erweiterung eine einzelne Zeile und ihre Beschreibung wird gekürzt, um in den vorhandenen Platz zu passen. "Erweitert" stellt zusätzliche Einzelheiten dar, wie weiteren Beschreibungstext und auch Informationen für Bearbeiter, weitere Installationsdetails usw.
  2. Drei Arten von Erweiterungen werden unterstützt: Arbeitsbereiche, Makros, und Voreinstellungspakete. Man kann wählen, ob nur eine Art angezeigt wird oder alle in einer einzigen Liste.
  3. Die Liste kann so eingegrenzt werden, dass sie nur installierte Pakete, nur Pakete mit erhältlichen Aktualisierungen oder nur Pakete, die noch nicht installiert wurden, enthält.
  4. Die Liste kann gefiltert werden durch die Suche nach Schlüsselwörtern in Benennung, Beschreibung und Kennzeichen (Beschreibung und Kennzeichnung müssen vom Addon-Entwickler in den Meta-Daten angegeben werden). Der Filter kann sogar ein regulärer Ausdruck sein, für eine präzise Steuerung des genauen Suchbegriffs.
  5. Die erweiterte Ansicht zeigt enthaltene Versionsinformationen, Beschreibungen, Informationen für Bearbeiter und Informationen zur Version der Installation für Pakete mit einer Paket-Meta-Daten-Datei (oder für Makros mit eingebetteten Meta-Daten).
  6. Die Addon-Daten werden lokal zwischengespeichert, mit einer variablen Häufigkeit der Aktualisierung des Zwischnspeichers, festgelegt in den Benutzereinstellungen.
  7. Zu jeder Zeit kann die manuelle Aktualisierung des lokalen Zwischenspeichers ausgewählt werden, um die neuesten verfügbaren Aktualisierungen für alle Erweiterungen anzuzeigen.
  8. Die Suche nach Aktualisierungen kann auf automatisch eingestellt sein oder manuell erfolgen durch einen Klick auf eine Schaltfläche (festgelegt in den Benutzereinstellungen). Wenn GitPython und git auf dem eigenen System installiert sind, werden die Aktualisierungsinformationen unter Verwendung von git abgeholt. Wenn nicht, werden Informationen zu Aktualisierungen aus allen vorhandenen Meta-Daten-Datein ausgelesen.

Klickt man in dieser Ansicht auf eine Erweiterung, wird eine Seite mit Einzelheiten zu dieser Erweiterung geöffnet:

Diese Seite mit Einzelheiten zeigt Schaltflächen, die es erlauben Erweiterungen zu installieren, zu deinstallieren, zu aktualisieren und zeitweise zu deaktivieren. Sie listet die aktuell installierten Versionen mit dem Installationsdatum und ob es sich um die neueste verfügbare Version handelt. Darunter befindet sich ein eingebettetes Webbrowser-Fenster, das die README-Seite der Erweiterung anzeigt (für Arbeitsbereiche und Voreinstellungspakete), oder die Wiki-Seite (für Makros).

Einstellungen

Die Einstellungen für den Addon-Manager findet man im Voreinstellungseditor. eingeführt mit Version 0.20

Sortieren nach Punktzahl

eingeführt mit Version 1.0

Der Addon-Manager unterstützt das Sortieren nach einer Reihe verschiedener Kriterien. Die meisten davon werden direkt von den Servern von FreeCAD heruntergeladen (die sie von GitHub und FreeCAD-Wiki zwischenspeichern), aber ein „Score“ wird von FreeCAD überhaupt nicht bereitgestellt und erscheint nur als Option, wenn die Einstellung „Score-Quell-URL“ in den Einstellungen angegeben ist.

Die Score-Quell-URL ist ein Pfad zu einem Remote-Dokument im JSON-Format, das Add-Ons und eine Art „Score“ auflistet. Der Score kann vom Datenanbieter beliebig berechnet werden, sollte aber ein ganzzahliger Wert sein, wobei höhere Scores in gewisser Weise „besser“ sind. Jedem nicht aufgeführten Add-On wird intern ein Score von 0 zugewiesen. Das Format der Datei ist ein einzelnes JSON-Wörterbuch, wobei der Schlüssel die Add-On-URL (für Workbenches und Preference Packs) oder der Name des Makros (für Makros) ist. Ein Beispiel findest du unter diese Datenquelle (beachte, dass die Punktzahl dort lediglich der Länge der Add-on-Beschreibung entspricht und nur für Test- und Demonstrationszwecke vorgesehen ist).

Hinweise

Informationen für Addon-Entwickler

Siehe Erweiterung.

Skripten

eingeführt mit Version 0.21

Einige Funktionen des Addon-Managers sind so ausgelegt, dass auf sie über FreeCADs Python-API zugegriffen werden kann. Im einzelnen kann ein Addon über die Python-Schnittstelle installiert, aktualisiert und entfernt werden. Die meisten Anwendungen dieser API erfordern, dass ein Objekt mit mindestens drei Attributen angelegt wird: name, branch und url. Zum Beispiel:

class MyAddonClass:
    def __init__(self):
        self.name = "TestAddon"
        self.url = "https://github.com/Me/MyTestAddon"
        self.branch = "main"
my_addon = MyAddonClass()

Das Objekt my_addon ist jetzt Bereit für den Einsatz mit der Addon-Manager-API.

Verwendung der Befehlszeile (ohne GUI)

Wenn dein Code ein Add-on synchron installieren oder aktualisieren muss (z. B. ohne GUI), kann der Code sehr einfach sein:

from addonmanager_installer import AddonInstaller
installer = AddonInstaller(my_addon)
installer.run()

Beachte, dass dieser Code blockiert, bis er abgeschlossen ist. Du solltest ihn daher nicht im Haupt-GUI-Thread ausführen. Für den Addon-Manager sind „Installieren“ und „Aktualisieren“ derselbe Aufruf: Wenn dieses Addon bereits installiert ist und Git verfügbar ist, wird es über „Git Pull“ aktualisiert. Wenn es nicht installiert ist oder über eine andere Installationsmethode als Git installiert wurde, wird es von Grund auf neu heruntergeladen (mit Git, falls verfügbar).

Zum Deinstallieren verwende:

from addonmanager_uninstaller import AddonUninstaller
uninstaller = AddonUninstaller(my_addon)
uninstaller.run()

GUI-Verwendung

If you plan on your code running in a GUI, or supporting running in the full version of FreeCAD, it's best to run your installation in a separate non-GUI thread, so the GUI remains responsive. To do this, first check to see if the GUI is running, and if it is, spawn a QThread (don't try to spawn a QThread if the GUI is not up: they require an active event loop to function).

from PySide import QtCore
from addonmanager_installer import AddonInstaller

worker_thread = QtCore.QThread()
installer = AddonInstaller(my_addon)
installer.moveToThread(worker_thread)
installer.success.connect(installation_succeeded)
installer.failure.connect(installation_failed)
installer.finished.connect(worker_thread.quit)
worker_thread.started.connect(installer.run)
worker_thread.start() # Returns immediately

Then define the functions installation_succeeded and installation_failed to be run in each case. For uninstallation you can use the same technique, though it is usually much faster and will not block the GUI for very long, so in general it's safe to use the uninstaller directly, as shown above.